//
//  ZFBBusinessTypeView.m
//  04-商家分类
//
//  Created by heima on 16/6/25.
//  Copyright © 2016年 itcast. All rights reserved.
//

#import "Masonry.h"
#import "UIColor+Addition.h"
#import "ZFBBusinessTypeFlowLayout.h"
#import "ZFBBusinessTypeView.h"
#import "ZFBusinessTypeCell.h"

// init 和 initWithFrame 都会调用 initWithFrame的方法
// 如果使用initWithFrame那么当前控件创建的frame是正确的
// 如果使用的是 init 方法 那么当前控件床架你的frame为 CGRectZero(0,0,0,0)
// 如果从xib或者是sb加载视图的时候 不会调用initWithFrame 会调用 awakeFromNib
// 而且获取到frame是 sb 或者 xib的大小

static NSString *cellid = @"business_cell";

@interface ZFBBusinessTypeView () <UICollectionViewDataSource, UICollectionViewDelegate>

@property (nonatomic, weak) UIPageControl *pageControl;

@end

@implementation ZFBBusinessTypeView

- (instancetype)initWithFrame:(CGRect)frame {
    self = [super initWithFrame:frame];
    if (self) {
        [self setupUI];
    }
    return self;
}

// 如果从xib或者是sb加载视图的时候 不会调用initWithFrame
// 但是 会调用awakeFromNib
// 如果从xib或者是sb加载视图的时候 获取不到正确的frame(有点儿像用代码先创建控件再设置frame差不多)
- (void)awakeFromNib {
    [self setupUI];
}

// 初始化控件
- (void)setupUI {
    // 创建流水布局
    ZFBBusinessTypeFlowLayout *layout = [[ZFBBusinessTypeFlowLayout alloc] init];

    // 创建集合视图
    UICollectionView *collectionView = [[UICollectionView alloc] initWithFrame:CGRectZero collectionViewLayout:layout];

    // 注册单元格
    [collectionView registerClass:[ZFBusinessTypeCell class] forCellWithReuseIdentifier:cellid];

    // 取消指示器(滚动条)
    collectionView.showsVerticalScrollIndicator = NO;
    collectionView.showsHorizontalScrollIndicator = NO;
    collectionView.pagingEnabled = YES;

    // 设置背景颜色
    collectionView.backgroundColor = [UIColor colorWithHex:0xf5f5f9];

    // 设置数据源
    collectionView.dataSource = self;
    collectionView.delegate = self;

    // 添加视图
    [self addSubview:collectionView];

    // 设置自动布局
    [collectionView mas_makeConstraints:^(MASConstraintMaker *make) {
        //                make.edges.offset(0);
        make.top.left.right.offset(0);
        make.bottom.offset(-20);

    }];

    // 创建pageControl
    UIPageControl *pageControl = [[UIPageControl alloc] init];
    // 默认颜色
    pageControl.pageIndicatorTintColor = [UIColor colorWithWhite:0.8 alpha:1];
    // 当前的颜色
    pageControl.currentPageIndicatorTintColor = [UIColor colorWithWhite:0.5 alpha:1];
    pageControl.numberOfPages = 2;
    // 禁用用户交互
    pageControl.userInteractionEnabled = NO;
    [self addSubview:pageControl];

    // 布局pageControl
    [pageControl mas_makeConstraints:^(MASConstraintMaker *make) {
        make.centerX.equalTo(self);
        make.bottom.offset(4);
    }];

    self.pageControl = pageControl;
}

- (NSInteger)collectionView:(UICollectionView *)collectionView numberOfItemsInSection:(NSInteger)section {
    return self.buinessTypeData.count;
}

- (UICollectionViewCell *)collectionView:(UICollectionView *)collectionView cellForItemAtIndexPath:(NSIndexPath *)indexPath {
    ZFBusinessTypeCell *cell = [collectionView dequeueReusableCellWithReuseIdentifier:cellid forIndexPath:indexPath];

    //    cell.xxxxx = 数组[indexPath.row];
    cell.businessType = self.buinessTypeData[indexPath.row];

    //    // 设置随机颜色 测试
    //    cell.backgroundColor = [UIColor randomColor];

    return cell;
}

// 停止滑动-已经完成减速
- (void)scrollViewDidEndDecelerating:(UIScrollView *)scrollView {
    // 获取滑动的offset
    CGFloat offsetX = scrollView.contentOffset.x;
    // 计算页数
    NSInteger page = offsetX / scrollView.bounds.size.width;

    // 设置pageControl当前的页面
    self.pageControl.currentPage = page;
}

@end
